package neca.tmazo.modelo;

import neca.tmazo.datasets.ArtistUser;
import neca.tmazo.datasets.BBDDException;
import neca.tmazo.datasets.Dataset;
import neca.tmazo.datasets.User;
import neca.tmazo.vista.WindowItems;

/**
 * 
 * @author neca
 *
 * Ventana de login
 *
 */
public class VentanaModeloLogin extends VentanaModelo {

	public VentanaModeloLogin(Aplicacion app) {
		super(app);
	}

	@Override
	public void onMenuItemSelected(int label, Dataset args) {
		switch (label) {
		case WindowItems.LOGIN_BOTON_ENTRAR:
			// Comprueba que el usuario es licito y entra en la aplicacion
			try {
				String username = args.get(WindowItems.LOGIN_FORMULARIO_NOMBREUSUARIO);

				if(this.app.getPersistencyFacade().checkUser(username) && !username.equals("")){
					// El usuario existe en la BD
					User user = this.app.getPersistencyFacade().getUser(username);
					
					if(args.get(WindowItems.LOGIN_FORMULARIO_PASS).equals(user.getPass())){
						// El nombre de usuario y el pass coinciden
						this.app.setUser(user);
						VentanaModelo nextWindow;
						//Si el usuario es artista abrimos mi recopilatorio, si no abrimos hoy recomendamos
						if(user instanceof ArtistUser){
							nextWindow= new VentanaModeloMiRecopilatorio(this.app, true);
						} else {
							nextWindow= new VentanaModeloHoyRecomendamos(this.app, true);
						}
						this.app.setCurrentWindow(nextWindow);
					} else {
						// El nombre de usuario y el pass no coinciden
						this.app.getVistaFacade().showInfo(true, "Nombre de usuario o pass incorrectos");
					}
					
				}else {
					// El usuario no existe en la BD
					this.app.getVistaFacade().showInfo(true, "Nombre de usuario o pass incorrectos");
				}
				
			} catch (BBDDException e) {
				this.app.getVistaFacade().showInfo(true, "Problemas conectando con el sistema de gestion de usuarios");
				e.printStackTrace();
			}
			
			break;
			
		case WindowItems.LOGIN_BOTON_REGISTRARSE:
			VentanaModeloFormularioRegistro ventanaRegistro = new VentanaModeloFormularioRegistro(this.app);
			this.app.setCurrentWindow(ventanaRegistro);
			break;
		}		
	}
	
	@Override
	public void init() {
		//Abrimos ventana de login
		this.app.getVistaFacade().openWindowLogin(this);
	}
	@Override
	public void close() {
		// TODO Auto-generated method stub
		
	}

}
